package com.wasion.pwportable.protocol.p2;

/**
 * 
 * @ClassName: TypeIndentityEnum
 * @Description: 类型标识的枚举
 * @author 高意
 * @date Apr 14, 2016 11:24:05 AM
 * 
 *       1) 监视方向的应用功能类型<br>
 *       ----<1>∶＝单点信息 ----M_SP_NA_1<br>
 *       ----<3>∶＝双点信息 ----M_DP_NA_1<br>
 *       ----<9>∶＝测量值，归一化值 ----M_ME_NA_1<br>
 *       ----<13>∶＝测量值，短浮点数 ----M_ME_NC_1<br>
 *       ----<30>∶＝带CP56Time2a时标的单点信息 ----M_SP_TB_1<br>
 *       ----<31>∶＝带CP56Time2a时标的双点信息 ----M_DP_TB_1<br>
 *       ----<34>∶＝带CP56Time2a时标的测量值，归一化值 ----M_ME_TD_1<br>
 *       ----<36>∶＝带CP56Time2a时标的测量值，短浮点数 ----M_ME_TF_1<br>
 *       2) 控制方向的过程信息<br>
 *       ----<45>∶＝单点命令 ----C_SC_NA_1<br>
 *       3) 在监视方向的系统命令<br>
 *       ----<70>∶＝初始化结束 ----M_EI_NA_1<br>
 *       4) 在控制方向的系统命令<br>
 *       ----<100>∶＝召唤命令 ----C_IC_NA_1<br>
 *       ----<103>∶＝时钟同步命令 ----C_CS_NA_1<br>
 *       ----<104>∶＝测试命令 ----C_TS_NA_1<br>
 *       ----<105>∶＝复位进程命令 ----C_RP_NA_1<br>
 *       ----<106>∶＝延时获得命令 ----C_CD_NA_1<br>
 * 
 */
public enum TypeIndentityEnum {

	SINGLE_POINT_INFO_TI(1), // "单点信息",
	DOUBLE_POINT_INFO_TI(3), // "双点信息",
	SINGLE_POINT_INFO_TIMESTAMP_TI(30), // "带CP56Time2a时标的单点信息", 浙江采集器遥信告警
	DOUBLE_POINT_INFO_TIMESTAMP_TI(31), // "带CP56Time2a时标的双点信息",

	MEASURED_VAL_NORMALIZE_TI(9), // "测量值，归一化值",
	MEASURED_VAL_FLOAT_TI(13), // "测量值，短浮点数",
	MEASURED_VAL_NORMALIZE_TIMESTAMP_TI(34), // "测量值，带时标CP56Time2a的归一化值",
	MEASURED_VAL_FLOAT_TIMESTAMP_TI(36), // "测量值，带时标CP56Time2a的短浮点数",
	MEASURED_VAL_ZJ_PDJKXL_TI(21), // "测量值，浙江架空线路数据采集",
	MEASURED_ALARM_ZJ_PDJKXL_TI(10), // "测量告警，浙江架空线路数据采集",

	REMOTE_CONTROL_TI(45), // "遥控单点命令",

	INIT_TI(70), // "初始化结束命令",
	ALL_DATA_COLLECT_TI(100), // "召唤命令",
	CLOCK_SYN_TI(103), // "时间同步命令",
	TEST_TI(104), // "测试命令",
	RESET_PROCESS_TI(105), // "复位进程命令",
	DELAY_ACQ_TI(106), // "延时获得命令",

	FAULT_RECORDING_DATA_ZJ_PDJKXL_TI(152), // "采集器录波数据主动上报，浙江架空线路数据采集",

	// 文件传输相关
	READY_FILE(120), // 文件准备就绪
	READY_SECTION(121), // 节准备就绪
	COLLECT_SECTION(122), // 召唤节
	LAST_SECTION_OR_PIECE(123), // 最后段和节
	RECOGNITION_SECTION_OR_PIECE(124), // 认可节和认可文件
	PIECE_DATA(125), // 段数据
	FILE_LIST(126), // 文件目录

	SINGLE_PARAM_RD(102), // 读单个参数
	SINGLE_PARAM_WR(48), // 预置/激活单个参数

	SETTING_AREA_WR(200), // 切换定值区
	SETTING_AREA_RD(201), // 读当前定值区号
	PARAMS_RD(202), // 读多个/全部参数和定值
	PARAMS_WR(203), // 写多个参数和定值

	END_TI(999);

	// 成员变量
	private int value;

	// 通过index获取对应的枚举对象
	public static TypeIndentityEnum getTypeIndentityEnum(int value) {
		for (TypeIndentityEnum type : TypeIndentityEnum.values()) {
			if (value == type.getValue()) {
				return type;
			}
		}

		return null;
	}

	// 构造方法
	private TypeIndentityEnum(int value) {
		this.value = value;
	}

	public int getValue() {
		return value;
	}

	public void setValue(int value) {
		this.value = value;
	}
}
